package com.nurt.dao;

import com.nurt.entity.UserEntity;

import java.sql.SQLException;
/**
 * 用户数据访问接口。
 * 提供了对用户数据的增、删、改、查等基本操作。
 */
public interface UserDao {

    /**
     * 根据用户ID查询用户信息。
     *
     * @param id 用户的唯一标识ID。
     * @return 符合条件的用户实体对象。
     * @throws SQLException 如果查询过程中发生数据库错误。
     */
    UserEntity selectUser(int id) throws SQLException;

    /**
     * 根据用户实体属性查询用户信息。
     *
     * @param user 用户实体对象，包含待查询的属性条件。
     * @return 符合条件的用户实体对象。
     * @throws SQLException 如果查询过程中发生数据库错误。
     */
    UserEntity selectUser(UserEntity user) throws SQLException;

    /**
     * 更新用户信息。
     *
     * @param user 待更新的用户实体对象，包含所有更新属性。
     * @return 更新操作影响的行数。
     * @throws SQLException 如果更新过程中发生数据库错误。
     */
    int updateUser(UserEntity user) throws SQLException;

    /**
     * 插入新用户信息。
     *
     * @param user 待插入的用户实体对象，包含所有新用户属性。
     * @return 插入操作影响的行数。
     * @throws SQLException 如果插入过程中发生数据库错误。
     */
    int insertUser(UserEntity user) throws SQLException;
}
